{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Static Mapping: Car Data\n",
"\n",
"As a brief introduction into static mapping, this quick demonstration uses perceptual attribute ratings to \n",
"uncover competing cars' relative positioning.\n",
"\n",
"## Background\n",
"\n",
"The data is taken from the following book (with slight modifications): \n",
"```\n",
"[1] Lilien, G. L., & Rangaswamy, A. (2004). Marketing engineering: computer-assisted marketing analysis and planning (2nd revised edition). DecisionPro.\n",
"```\n",
"\n",
"**Last updated:** September 2023\n",
"\n",
"\n",
"Read the **full paper** here (open access): https://doi.org/10.1287/mksc.2022.1385\n",
"\n",
"**Contact:** For questions or feedback, please get in touch."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Loading Example Data\n",
"\n",
"The data for this example consist of two files: \n",
"\n",
"- 'attributes': Perceptual attribute ratings for competing cars\n",
"- 'preferences': Customer preference ratings for these cars\n",
"\n",
"Both files are included within the `evomap.datasets` module. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2022-04-19T13:35:58.274407Z",
"start_time": "2022-04-19T13:35:58.072923Z"
}
},
"outputs": [],
"source": [
"from evomap.datasets import load_car_data\n",
"data = load_car_data()\n",
"df_attributes = data['attributes']\n",
"df_preferences = data['preferences']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We start by inspecting the attribute data. These data include attribute ratings for the following 10 competing cars:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['G20', 'Ford_T_Bird', 'Audi_90', 'Toyota_Supra', 'Eagle_Talon',\n",
" 'Honda_Prelude', 'Saab_900', 'Pontiac_Firebird', 'BMW_318i',\n",
" 'Mercury_Capri'],\n",
" dtype='object', name='Car')"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"car_labels = df_attributes.index\n",
"car_labels"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Each car has been rated along 15 perceptual attributes."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2022-04-19T13:35:58.290333Z",
"start_time": "2022-04-19T13:35:58.277368Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Attractive', 'Quiet', 'Unreliable', 'Poorly.Built', 'Interesting',\n",
" 'Sporty', 'Uncomfortable', 'Roomy', 'Easy.to.Service', 'High.Prestige',\n",
" 'Common', 'Economical', 'Successful', 'Avant.garde', 'Poor.Value'],\n",
" dtype='object')"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_attributes.columns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Each attribute value represents averages of a customer survey:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Attractive 5.6\n",
"Quiet 6.3\n",
"Unreliable 2.9\n",
"Poorly.Built 1.6\n",
"Interesting 3.6\n",
"Sporty 4.1\n",
"Uncomfortable 3.2\n",
"Roomy 4.2\n",
"Easy.to.Service 4.6\n",
"High.Prestige 5.4\n",
"Common 3.5\n",
"Economical 3.6\n",
"Successful 5.3\n",
"Avant.garde 4.3\n",
"Poor.Value 3.4\n",
"Name: G20, dtype: float64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_attributes.loc['G20']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Derive Car Positioning\n",
"\n",
"To project these 15-dimensional vectors for each car onto the two-dimensional plane, we can use Classical Multidimensional Scaling (CMDS). \n",
"CMDS, also known as Principal Coordinates Analysis, takes a matrix of pairwise distances, and creates a low-dimensional configuration of points via Eigendecomposition of the distance matrix. \n",
"\n",
"Thus, as a first step, construct a pairwise distance matrix:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0. , 5.28, 2.93, 3.48, 5.75, 2.7 , 3.11, 6.08, 2.29, 5.59],\n",
" [5.28, 0. , 4.42, 4.75, 2.28, 4.35, 4.98, 1.82, 5.67, 1.97],\n",
" [2.93, 4.42, 0. , 4.58, 5.25, 3.76, 2.76, 5.39, 3.21, 5.1 ],\n",
" [3.48, 4.75, 4.58, 0. , 5.46, 3.51, 3.95, 4.73, 3.41, 4.91],\n",
" [5.75, 2.28, 5.25, 5.46, 0. , 4.26, 5.35, 3.01, 6.19, 0.99],\n",
" [2.7 , 4.35, 3.76, 3.51, 4.26, 0. , 3.27, 5.12, 3.07, 4.19],\n",
" [3.11, 4.98, 2.76, 3.95, 5.35, 3.27, 0. , 5.9 , 2.69, 5.07],\n",
" [6.08, 1.82, 5.39, 4.73, 3.01, 5.12, 5.9 , 0. , 6.34, 2.49],\n",
" [2.29, 5.67, 3.21, 3.41, 6.19, 3.07, 2.69, 6.34, 0. , 5.85],\n",
" [5.59, 1.97, 5.1 , 4.91, 0.99, 4.19, 5.07, 2.49, 5.85, 0. ]])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from evomap.preprocessing import calc_distances\n",
"dist_mat = calc_distances(df_attributes)\n",
"dist_mat.round(2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then, apply CMDS to this matrix. Syntax follows the `scikit-learn` library:\n",
"\n",
"First, you intialize the model. Then, you `fit()` it to data. `fit_transform()` directly returns the resultant output (in this case: a two-dimensional array of map coordinates). "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[-2.54, 0.04],\n",
" [ 2.43, -0.3 ],\n",
" [-1.53, -1.68],\n",
" [-1.09, 2.61],\n",
" [ 2.9 , -0.79],\n",
" [-1. , 0.11],\n",
" [-2.01, -0.98],\n",
" [ 3.1 , 0.95],\n",
" [-2.96, 0.27],\n",
" [ 2.71, -0.23]])"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from evomap.mapping import CMDS\n",
"map_coords = CMDS(n_dims= 2).fit_transform(dist_mat)\n",
"map_coords.round(2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The resultant coordinates can then be visualized in a 2D map"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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8OQRbmmQM2dO5c2bVy+//LLKly+vrl27avny5VbLVK5cWVu2bFFCQoLV9DVr1qhcuXJWy917NuzixYs6e/asOnTooNDQUMv0w4cPKzY2VpUrV37o+C5fvqwePXqoefPmcnNzU48ePXTz5k0dOXJEkpSYmKj+/furR48ecnNzS7X+pk2b9MEHH6hYsWKqXr26mjZtqu3bt0uSHBwclDt37jT8lQAAwJNGuKVD1qxZU02rWLGismTJYgkeSbp06ZJOnDih6tWrW6ZVqVJFBw4csAReaGioSpcurbp162rPnj26ffu2JGn37t3y8fFRrly5HjqeRo0aqVu3bpKkuLg4TZ06VS4uLvL29pYk3bp1S+Hh4frll19UoUKFVOvnypVLixcv1u3bt3Xp0iX9+uuvKlmypCQulQIA8Cwh3B7R9evXNX36dDVv3txquq2trfz8/Kwul65evVp16tSRvb29ZVrZsmVlY2OjAwcOSEoJt2rVqqlYsWJycnLSn3/+KSkl3KpWrfpIY9u+fbuKFCmiMWPGaPDgwcqWLZskycnJST///LOKFy9+3/WGDRum7du3q2jRoipbtqzy5cunnj17PtK+AQDAk0e43cetW7cUFhamY8eOSZLee+89FSlSRF5eXipZsqT279+vDh06pFqvYcOGVuG2Zs0avf7661bLZM6cWWXLlrVcLt2xY4eqV68uGxsbValSxXK5ND3hVqxYMa1du1Z9+vRRt27dtHv37jStd/z4cZUpU0bLly/XjBkzdPjwYU2aNOmR9g0AAJ48u6c9gGdJUlKSBg8erPHjx+vmzZuSUh46GDRokN59910ZhqHr16/r+++/V+PGjbVp0ya5uLhY1n/ttdd048YN/f3333Jzc9OePXssIXSvypUrKywsTGfPntWFCxdUsWJFSVK1atW0YsUKRUZG6sSJE6pSpcojjT9PnjzKkyePSpQooT179mj27NkqX778v64TERGhL774Qrt27VK+fPkkSbdv31b//v31v//975H2DwAAnizOuN2jd+/eGjp0qNq3b68dO3ZoyZIlkqTBgwcrKipKHh4eKl++vMaNG6fbt29rxYoVVus7Ojrqtdde07p167Rx40ZVrVrVcrnyXlWqVNFff/2l3377TWXKlJGjo6MkqWrVqgoLC9Off/6pIkWKpPmhgLCwMP39999W07y9vXX9+vWHrvv333/rpZdeskSbJJUsWVIxMTGWeAUAAM8Gzrj9nwsXLmjixIkaOnSoPv74Y8v03Llzy9bWViNGjNDcuXMlSTY2NkpOTlZSUlKq7TRs2FAzZ86Uu7u73njjjfvuq0KFCjp58qTlMuldxYoVU7Zs2bRkyZI0vQbkrnnz5un06dOaN2+eZdq+fftUqlSph6778ssv6/r167p69arl7OGxY8eULVs2niYFAOAZwxm3/7N582YlJiaqY8eOVtNtbGxUs2ZNrV69WpcvX1ZERIQ++eQTJSUlqX79+qm24+fnp/DwcG3evFn16tW7776yZ88uHx8frVixwirQ7t7ntnbt2ke6TNqqVSuFhoZq+vTpioiI0KhRo7R3795Ux3I/5cqVk7e3t7p27arDhw/rt99+05AhQ9S2bVvL++cAAMCzgXD7P5kyZZKkVO9hk2S578zX11d+fn46duyY5s6dq8KFC6da1sXFRWXLllWJEiX00ksvPXB/lStXVkJCQqrXc1SrVk23b99+pHArVaqUZsyYoXnz5qlOnTrauHGj5s2bp5dffvmh69rZ2WnOnDnKmjWrmjRpoi5dusjf3199+vRJ8/5xf5UqVVJISEiq6U/yFSv3+wJHepw5cybVV0M8PDzk7++vjRs3pnu73bt3T/Xljkcd05kzZ9K9fwAwOxvDMIz0rBgVFSVnZ2dFRkbKyckpo8f1n7t27ZoKFCignj176quvvrJMv3nzpkqWLKmGDRtaviYApEWlSpXUq1cvtWzZ0mp6SEiIRo8erT/++CPD9+nq6qpFixY90qX2+zlz5owqV66sX375Ra6urpJSHlqZPn26Zs2apS1btsjd3f2Rt3s32saNG5fuMe3cuVOFChV65PUBmNvz1h3pxRm3/5M7d259/PHHGjZsmNq0aaOff/5ZU6dOVdWqVXXr1i3169fvaQ8R+M/lzp1befPmVd68eeXm5qaBAwcqS5YsWr9+/dMeGgC8kAi3ewwcOFATJkzQli1b5O/vr06dOsnDw0Pbtm1T0aJFn8qYVq1apSJFijzw57333nsq40LGuHDhgoKDg1W8eHGVKFFCn376qe7cuSMp5cxc8+bNNWrUKJUoUUI+Pj4aNGiQ7j1JPmbMGJUqVUolSpSwejhFSvmcWseOHeXj4yM3NzfVr1/f8oLn9LKzS3me6e5LpV1dXfX111+rRIkSCgoKkpTy7dyGDRvKw8NDderU0apVq+67rdGjR6d6kfW9l5cTEhI0YMAA+fj4qFy5ctqwYYPVslFRUerSpYu8vb1VtmxZDRgwQHFxcY91fADwrOOp0nvY2Njoo48+UufOnXXx4kVly5ZNOXPmfKpjqlWrVqr/wbqXg4PDfzgaZKSEhAQFBATI09NTS5Ys0bVr19SnTx/Z2NhoyJAhkqRdu3YpT548+vnnnxUWFqZu3bqpTp06eu211zRnzhxNmzZN48ePl6urq/r372+1/Y8++khOTk5auXKlkpOT9eWXX6p///7pvkctNjZW48eP1507d1SrVi3L9HXr1unnn39WUlKSLl++rDZt2qh///6qXbu2du/ere7du8vFxSVN392916hRo7R+/XrNnDlT9vb2ls+63dWzZ08lJCRo+fLliouL02effaZPPvlEY8aMSdfxAYApGOkUGRlpSDIiIyPTuwmkQWxsrDFixAijRo0ahru7u/HKK68YHTp0MA4dOmRZZteuXcZbb71leHl5GdWrVzfmzp1rtY2tW7catWrVMjw8PIyAgADj5MmT//VhvJAqVqxouLm5GV5eXlY/bm5uRsWKFY21a9canp6exs2bNy3rbNq0yShUqJARExNjzJ8/3yhQoIARFRVlmV+vXj3jm2++MQzDMBo2bGiMGTPGMu/w4cNG/vz5jdDQUCM5OdmYNm2acf78ecv8X3/91ShQoECaxn769Gkjf/78hqenp+Hl5WV4enoa+fPnN8qWLWssXbrUslz+/PmNH3/80fL7iBEjjPbt21tta9CgQZZp3bp1M7p162YYhmGMGjXKaNasWaq/2fz5843k5GSjZMmSxsKFCy3zNmzYYOTPn984ffq0ERERYRQoUMDqvz/h4eGppgF4ftAdKTjj9gyLjY2Vv7+/bt26pUGDBumVV17R9evX9cMPP6hx48Zav369HBwc9N577ykoKEjjx4/Xvn371L17d+XNm1d+fn46d+6c2rZtq969e6t27doaO3as2rVrpw0bNvC6jwyUkJCg8ePHa+rUqTp9+rQ8PT0VExOjPn366K233rJa9pdfftHMmTN19OhReXp6ytnZ2TKvQoUKSkxM1MmTJyWlfA0jR44clvk5cuSwPPl85MgRq2/Kent7K2vWrJJSzh4HBQVp2bJl2rVrl44dO6Z9+/YpOTn5kY5rzpw5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",
"text/plain": [
"